[][src]Crate tmq

TMQ - Rust ZeroMQ bindings for Tokio

This crate bridges Tokio and ZeroMQ to allow for ZeroMQ in the async world.

Currently Implemented Sockets

  • Request/Reply
  • Publish/Subscribe
  • Dealer/Router
  • Push/Pull

Usage

Usage is made to be simple, but opinionated. See the examples/ Directory for some examples.

Publish Example

To publish messages to all connected subscribers, you can use the publish function:

use tmq::{publish, Context, Result};

use futures::SinkExt;
use log::info;
use std::env;
use std::time::Duration;
use tokio::time::delay_for;

#[tokio::main]
async fn main() -> Result<()> {

    let mut socket = publish(&Context::new()).bind("tcp://127.0.0.1:7899")?;

    let mut i = 0;

    loop {
        i += 1;

        socket
            .send(vec!["topic", &format!("Broadcast #{}", i)])
            .await?;

        delay_for(Duration::from_secs(1)).await;
    }
}

Modules

dealer

Dealer Sockets

pair

Pair Sockets

publish

Publish Sockets

pull

Pull Sockets

push

Push Sockets

request_reply

Request/Reply Sockets

router

Router Sockets

subscribe

Subscribe Sockets

Structs

Context

Handle for a 0MQ context, used to create sockets.

Message

Holds a 0MQ message.

Multipart

ZMQ multipart which holds individual messages.

SocketBuilder

Builder which provides bind and connect methods to build a corresponding ZMQ socket as per the standard functions

Enums

TmqError

Error that can occur during an async ZMQ operation.

Traits

AsZmqSocket

Trait for various ZMQ socket wrappers.

SocketExt

Trait which defines configuration functions for ZMQ sockets.

Functions

dealer

Create a builder for a DEALER socket.

pair

Create a builder for a PAIR socket.

publish

Create a builder for a PUB socket.

pull

Create a builder for a PULL socket.

push

Create a builder for a PUSH socket.

reply

Create a builder for a REP socket

request

Create a builder for a REQ socket

router

Create a builder for a ROUTER socket.

subscribe

Create a builder for a SUB socket.

Type Definitions

Result

Shortcut for [Result<T, tmq::TmqError>].